#include <stdio.h>
#include <unistd.h>

int main(int argc, const char *argv[])
{
	// 76543210
	// 11000101
	unsigned char led = 0xC5;

	// 1.点亮3号的灯
	// 00001000
	//led = 0x08; // 这种写法能将3号灯点亮 但是也会同时熄灭其他所有灯
	
	//led = led | 0x08;
	// 11000101
	//  |
	// 00001000 
	// 11001101
	led = led | (1<<3); // 第13行的写法也可以 但是这样写更好
	printf("led = %#x\n", led); // 0xCD

	// 2.熄灭6号灯
	// 11001101  --此时灯的状态
	// led = 0xBF; // 10111111 这种写法虽然6号灭了 但其他的都被点亮
	
	//led = led & 0xBF;
	// 11001101  --此时灯的状态
	//  &
	// 10111111
	// 10001101 --> 0x8D
	led = led & ~(1<<6); // 第25行的写法也可以 但是这样写更好
	printf("led = %#x\n", led); // 0x8D

	// 3.让2号灯闪烁 (亮1秒 灭1秒)
	// 10001101  --此时灯的状态
	while(1){ // while(1) 中的代码会循环执行--后面讲
		led = led ^ (1<<2); // 取反
		printf("%#x\n", led); // 0x89 0x8D
		sleep(1);
	}

	return 0;
}
